package com.devbobcorn.donutopia.blocks;

import com.devbobcorn.donutopia.Donutopia;

import net.minecraft.block.Block;
import net.minecraft.block.AbstractBlock;
import net.minecraft.block.LeavesBlock;
import net.minecraft.block.material.Material;
import net.minecraftforge.fml.RegistryObject;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;

public class ModBlocks {
    public static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, Donutopia.MODID);
    
    public static final RegistryObject<Block> CHOCOLATE_BLOCK = BLOCKS.register("chocolate_block", () -> new Block(Block.Properties.of(Material.STONE)));
    public static final RegistryObject<Block> MILKY_CHOCOLATE_BLOCK = BLOCKS.register("milky_chocolate_block", () -> new Block(Block.Properties.of(Material.STONE)));
    // Set Material to Grass to ensure natural mob spawn...
    public static final RegistryObject<Block> VELVET_GRASS_BLOCK = BLOCKS.register("velvet_grass_block", () -> new SnowyGrassChocolateBlock(AbstractBlock.Properties.of(Material.GRASS)));
    public static final RegistryObject<Block> MILKY_VELVET_GRASS_BLOCK = BLOCKS.register("milky_velvet_grass_block", () -> new SnowyGrassChocolateBlock(AbstractBlock.Properties.of(Material.GRASS)));
    public static final RegistryObject<Block> RAINBOW_GRASS_BLOCK = BLOCKS.register("rainbow_grass_block", () -> new SnowyGrassChocolateBlock(AbstractBlock.Properties.of(Material.GRASS)));

    public static final RegistryObject<Block> CHEESE_BLOCK = BLOCKS.register("cheese_block", () -> new Block(Block.Properties.of(Material.STONE)));

    public static final RegistryObject<Block> CANDY_BLOCK = BLOCKS.register("candy_block", () -> new Block(Block.Properties.of(Material.STONE)));
    public static final RegistryObject<Block> ORANGE_CANDY_BLOCK = BLOCKS.register("orange_candy_block", () -> new Block(Block.Properties.of(Material.STONE)));
    public static final RegistryObject<Block> PINK_CANDY_BLOCK = BLOCKS.register("pink_candy_block", () -> new Block(Block.Properties.of(Material.STONE)));
    public static final RegistryObject<Block> RED_CANDY_BLOCK = BLOCKS.register("red_candy_block", () -> new Block(Block.Properties.of(Material.STONE)));
    public static final RegistryObject<Block> YELLOW_CANDY_BLOCK = BLOCKS.register("yellow_candy_block", () -> new Block(Block.Properties.of(Material.STONE)));
    public static final RegistryObject<Block> LIME_CANDY_BLOCK = BLOCKS.register("lime_candy_block", () -> new Block(Block.Properties.of(Material.STONE)));
    public static final RegistryObject<Block> PURPLE_CANDY_BLOCK = BLOCKS.register("purple_candy_block", () -> new Block(Block.Properties.of(Material.STONE)));

    public static final RegistryObject<Block> AURORA_LEAVES = BLOCKS.register("aurora_leaves", () -> new LeavesBlock(Block.Properties.of(Material.LEAVES).noOcclusion()));
    public static final RegistryObject<Block> RAINBOW_LEAVES = BLOCKS.register("rainbow_leaves", () -> new LeavesBlock(Block.Properties.of(Material.LEAVES).noOcclusion()));
    public static final RegistryObject<Block> SAPPHIRE_LEAVES = BLOCKS.register("sapphire_leaves", () -> new LeavesBlock(Block.Properties.of(Material.LEAVES).noOcclusion()));
}
